package com.yanftch.hdc_tools.insertcode.util

import com.google.gson.Gson
import com.google.gson.GsonBuilder
import com.google.gson.reflect.TypeToken

object GsonUtils {

    /**
    * 将Json字符串转换为集合List
    */
    @JvmStatic
    fun <T> jsonToList(json: String?, clazz: Class<T>): List<T> {
        if (json.isNullOrEmpty()) return listOf()

        val gson = Gson()
        val listType = TypeToken.getParameterized(List::class.java, clazz).type
        return gson.fromJson(json, listType)
    }

    /**
    * 将 List 或者 对象，转成 JSONSting，美化后的格式
    */
    fun <T> toJson(obj: T): String {
        // 创建 Gson 实例，禁用 HTML 字符的转义
        val gson = GsonBuilder()
            .disableHtmlEscaping()  // 禁用字符转义
            .setPrettyPrinting()    // 美化输出 (可选)
            .create()

        // 序列化对象为 JSON 字符串
        val json = gson.toJson(obj)

        return json
    }

}